Business systems require timely access to critical information for decision making. The traditional approach to meet such requirements has been to build data warehouses, data marts and reporting applications. These approaches have not been able to meet strict service level agreement (SLA) requirements for truly real-time applications, such as fraud detection, service monitoring, gaming and real-time trending, because these approaches are not able to monitor a stream of continuously arriving data, while searching for patterns or conditions.
Additionally, databases and Structured Query Language (SQL) do not have constructs to wait for data arrival. SQL works on historical data that is present in a repository, when the query is fired. This processing of historical data stored in a data warehouse often fails to meet many latency requirements, as it takes time to collect, cleanse and integrate data (commonly known as ETL—Extract Transform Load) in a data warehouse and as it also takes time to start a query for processing of the warehoused data.